﻿using PMS.Data.Entities.ScheduleTasks;
using PMS.Web.Models.ScheduleTasks;

namespace PMS.Web.Factories.ScheduleTasks
{
    public interface IScheduleTaskFactory
    {
        /// <summary>
        /// Prepare Paged ScheduleTaskList Model
        /// </summary>
        /// <param name="pageIndex"></param>
        /// <param name="pageSize"></param>
        /// <returns></returns>
        ScheduleTaskListModel PrepareScheduleTaskListModel(int page = 1, int pageSize = int.MaxValue);

        /// <summary>
        /// Prepare ScheduleTaskModel by taskid
        /// </summary>
        /// <param name="taskid"></param>
        /// <returns></returns>
        ScheduleTaskModel PrepareScheduleTaskModel(int taskid);

        /// <summary>
        /// Prepare ScheduleTaskModel by task entity
        /// </summary>
        /// <param name="task"></param>
        /// <returns></returns>
        ScheduleTaskModel PrepareScheduleTaskModel(SystemScheduleTask task);
    }
}
